git hook
gitのコミット時などに、bashを走らせる機構
.git/hooks/配下にpre-commitなどの名前でシェルを置いておくと、コミットなどを行なった際に自動的にバッチ処理をしてくれる。
基本的にはコミット前チェックみたいな立ち位置っぽい
ただし、ファイルの格納場所はユーザ個人(.git/hooks/はコミットされたりしない)なので、複数メンバで開発する場合は環境を揃える必要がある
上の記事では、プロジェクト共通で使うテンプレートをローカルに置いてるが、git_templeteをプロジェクトフォルダに入れてコミットすれば、配布出来る。
git hookで走らせるbash内では、いくつかのgitコマンドが動かなくなる。
ワークスペースを絶対パスで指定する
code:sh
WORK_DIR=$(cd $(dirname $0)/../../; pwd)
git --work-tree=$WORK_DIR add $WORK_DIR/js/hoge.js
git --work-tree=$WORK_DIR commit -m 'auto build'
exit 0
フックを起動せずにコミットやプッシュをする
git push --no-verify フックを起動せずにpushする
post-receiveを使ったpull後の自動デプロイ